package com.xxx.springsecuritydemo.controller;

import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class LoginController {
    /**
     * 登录，第一次登录localhost：8080端口会跳转到login页面，并不是我们自己写的login.html，
     * 而是springsecurity中vue自带的登录页面，然后用户名是user，密码是在控制台自动生成，
     * 每次登录都会产生不一样的密码
     * @return
     */
    @RequestMapping("/login")
    public String login(){
        return "redirect:main.html";
    }

    // 登录成功跳转
//    @Secured("ROLE_abc")
    @PreAuthorize("hasRole('ROLE_abc')") // 内容写权限表达式,该注解允许使用ROLE_开头，也可以不写，大小写区分
    @RequestMapping("/toMain")
    public String toMain(){
        return "redirect:main.html";
    }

    // 登录失败跳转
    @RequestMapping("/toError")
    public String toError(){
        return "redirect:error.html";
    }

    // 正则表达式方法测试
    @GetMapping("/regex")
    @ResponseBody
    public String toRegex(){
        return "regex";
    }
}
